Wczytywanie biblioteki EDAWR zawierającej zbiór “tb”. Pomijanie pomiarów zawierających brakujące dane.
library(EDAWR)
tb_data <- tb[complete.cases(tb), ]
Krótkie podsumowanie danych:
knitr::kable(summary(tb_data))
| country | year | sex | child | adult | elderly | |
|---|---|---|---|---|---|---|
| Length:3380 | Min. :1995 | Length:3380 | Min. : 0.0 | Min. : 0 | Min. : 0.0 | |
| Class :character | 1st Qu.:2000 | Class :character | 1st Qu.: 25.0 | 1st Qu.: 1130 | 1st Qu.: 85.0 | |
| Mode :character | Median :2005 | Mode :character | Median : 75.0 | Median : 2593 | Median : 230.0 | |
| NA | Mean :2004 | NA | Mean : 472.6 | Mean : 10883 | Mean : 1255.5 | |
| NA | 3rd Qu.:2009 | NA | 3rd Qu.: 261.2 | 3rd Qu.: 6712 | 3rd Qu.: 642.8 | |
| NA | Max. :2013 | NA | Max. :25661.0 | Max. :731540 | Max. :125991.0 |
Liczba zachorowań z podziałem na płeć:
by_sex <- group_by(tb_data, sex) %>% summarize(sum(child), sum(adult), sum(elderly))
knitr::kable(by_sex)
| sex | sum(child) | sum(adult) | sum(elderly) |
|---|---|---|---|
| female | 827908 | 13481615 | 1301076 |
| male | 769649 | 23304306 | 2942501 |
Wykres liniowy sumarycznej liczby zachorowań z podziałem na grupę wiekową w kolejnych latach:
sums_by_year = function(dataset, country_choice = NA) {
filtered_dataset = if (is.na(country_choice))
dataset
else
dataset %>% filter(country == country_choice)
result = filtered_dataset %>%
group_by(year) %>%
summarize(
child = sum(child),
adult = sum(adult),
elderly = sum(elderly)
)
}
plot_tb_data = function(dataset, country = NA) {
title = if (is.na(country)) "Zachorowania na gruźlicę w grupach wiekowych" else country
grouped_data = sums_by_year(dataset, country)
print(length(grouped_data$year))
matplot(x = grouped_data$year, y = grouped_data %>% select(-year),
type = c("b"), pch = 1,
main = title, ylab = "Liczba zachorowań", xlab = "Rok badania")
legend("topleft", legend=c("Dzieci", "Dorośli", "Starsi"), col = 1:3, pch = 1)
}
plot_tb_data(tb_data)
## [1] 19
Analogiczne do powyższego wykresy dla poszczególnych krajów:
countries = unique(tb_data$country)
for (i in countries) {
plot_tb_data(tb_data, i)
}